class addCarts {
    constructor() {
        this.stock = parseInt($("#s_content").html());
        this.price = parseInt($(".current-price").html().slice(1));
        this.timer = null;
        this.init();
    }

    init() {
        // input 处理函数
        this.handlerInput();

        // 数量加减 click函数
        this.handlerClick();

        // 加入购物车函数
        this.addCart();
    }

    handlerInput() {
        $(".amount").change($.proxy(function(e) {
            if ($(".amount").val() > $("#s_content").html()) {
                $(".sku-msg").css("display", "block");
                $(".add").addClass("disabled");
            } else {
                $(".sku-msg").css("display", "none");
                $(".add").removeClass("disabled");
            }
            if ($(".amount").val() <= 1) {
                $(".amount").val(1);
                $(".reduce").addClass("disabled");
            } else {
                $(".reduce").removeClass("disabled");
            }
        }, this))
    }

    handlerClick() {
        $(".amount-widget").on("click", "span", $.proxy(function(e) {
            if ($(e.currentTarget).hasClass("add")) {
                let count = $(".amount").val();
                $(".amount").val(++count).change();
            } else {
                let count = $(".amount").val();
                $(".amount").val(--count).change();
            }
        }, this))
    }

    addCart() {
        $("#add_Cart").click($.proxy(function(e) {
            if ($(".amount").val() > $("#s_content").html()) {
                return false;
            } else {
                $(".amsmobi_toast").css("display", "block");
                this.handleCarts(); //  将商品信息添加到本地存储
                this.timer = setInterval(() => {
                    clearInterval(this.timer);
                    $(".amsmobi_toast").css("display", "none");
                }, 2000)
            }
        }, this))
    }

    handleCarts() {
        let goodsInfo = {
            Title: $("h3.title").html(),
            Id: $("#add_Cart").attr("key_id"),
            Count: parseInt($(".amount").val()),
            Price: this.price,
            Img: $("#midimg").attr("src")
        }
        $("#s_content").html($("#s_content").html() - parseInt($(".amount").val()))
        this.saveCarts(goodsInfo);
    }

    saveCarts(goods) {
        var s = localStorage.getItem("carts"); // 取出购物车localstorage
        if (s === null) { //  如果s  为空，则添加进去
            var a = [{
                Title: goods.Title,
                Id: goods.Id,
                Count: goods.Count,
                Price: goods.Price,
                Img: goods.Img
            }]
            localStorage.setItem("carts", JSON.stringify(a));
        } else { // 不为空 则遍历
            var la = JSON.parse(s);
            var has_same_id = false;
            $.each(la, function(index, item) {
                if (item.Id === goods.Id) { // 有相同的商品，则数量相加
                    item.Count += goods.Count;
                    has_same_id = true;
                }
            })
            if (!has_same_id) { // 否则， 将这个商品对象放进数组
                la.push(goods);
            }
            localStorage.setItem("carts", JSON.stringify(la));
        }
    }
}